Data compression is an effective way to optimize usage of dynamic random-access memory (DRAM), and it is more energy efficient to use dedicated compression hardware to offload the task of compression than it is to use software (e.g. a memory management program) running on a processor (e.g. the central processing unit (CPU)). The CPU typically does not access all physical computer memory at once, and different pieces of physical computer memory are usually associated with different tasks. The operating system generally will manage this process of compressing the data in physical computer memory, and using dedicated compression hardware to compress the data in physical computer memory will allow this technique to be used more efficiently in terms of both time and energy.
It is difficult to know how much space is required to store compressed data before compressing the data. When compression hardware is used to compress data in physical computer memory, the compression hardware knows the size of the compressed data after compression and therefore can determine where the compressed data should be stored. Fragmentation occurs where the space used to store the compressed data is larger than necessary. Any fragmentation that occurs makes the data compression less effective.